From 7beef3e9e45ae9ab26de248882390303a1665c33 Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Mon, 19 Sep 2005 16:02:32 +0000 Subject: [PATCH] Fix kernel users of xs_write as well. Signed-off-by: Christian Limpach --- linux-2.6-xen-sparse/arch/xen/kernel/reboot.c | 2 +- .../drivers/xen/xenbus/xenbus_xs.c | 28 ++++++------------- linux-2.6-xen-sparse/include/asm-xen/xenbus.h | 3 +- 3 files changed, 10 insertions(+), 23 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c index 7a8842630b..5983e64c64 100644 --- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c +++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c @@ -334,7 +334,7 @@ static void shutdown_handler(struct xenbus_watch *watch, const char *node) return; } - xenbus_write("control", "shutdown", "", O_CREAT); + xenbus_write("control", "shutdown", ""); err = xenbus_transaction_end(0); if (err == -ETIMEDOUT) { diff --git a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c index 108497c04b..8a1c4ffb5b 100644 --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c @@ -253,31 +253,19 @@ void *xenbus_read(const char *dir, const char *node, unsigned int *len) EXPORT_SYMBOL(xenbus_read); /* Write the value of a single file. - * Returns -err on failure. createflags can be 0, O_CREAT, or O_CREAT|O_EXCL. + * Returns -err on failure. */ -int xenbus_write(const char *dir, const char *node, - const char *string, int createflags) +int xenbus_write(const char *dir, const char *node, const char *string) { - const char *flags, *path; - struct kvec iovec[3]; + const char *path; + struct kvec iovec[2]; path = join(dir, node); - /* Format: Flags (as string), path, data. */ - if (createflags == 0) - flags = XS_WRITE_NONE; - else if (createflags == O_CREAT) - flags = XS_WRITE_CREATE; - else if (createflags == (O_CREAT|O_EXCL)) - flags = XS_WRITE_CREATE_EXCL; - else - return -EINVAL; iovec[0].iov_base = (void *)path; iovec[0].iov_len = strlen(path) + 1; - iovec[1].iov_base = (void *)flags; - iovec[1].iov_len = strlen(flags) + 1; - iovec[2].iov_base = (void *)string; - iovec[2].iov_len = strlen(string); + iovec[1].iov_base = (void *)string; + iovec[1].iov_len = strlen(string); return xs_error(xs_talkv(XS_WRITE, iovec, ARRAY_SIZE(iovec), NULL)); } @@ -357,7 +345,7 @@ int xenbus_printf(const char *dir, const char *node, const char *fmt, ...) va_end(ap); BUG_ON(ret > sizeof(printf_buffer)-1); - return xenbus_write(dir, node, printf_buffer, O_CREAT); + return xenbus_write(dir, node, printf_buffer); } EXPORT_SYMBOL(xenbus_printf); @@ -377,7 +365,7 @@ void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...) BUG_ON(len + ret > sizeof(printf_buffer)-1); dev->has_error = 1; - if (xenbus_write(dev->nodename, "error", printf_buffer, O_CREAT) != 0) + if (xenbus_write(dev->nodename, "error", printf_buffer) != 0) printk("xenbus: failed to write error node for %s (%s)\n", dev->nodename, printf_buffer); } diff --git a/linux-2.6-xen-sparse/include/asm-xen/xenbus.h b/linux-2.6-xen-sparse/include/asm-xen/xenbus.h index b792efe8c8..03d644b8d8 100644 --- a/linux-2.6-xen-sparse/include/asm-xen/xenbus.h +++ b/linux-2.6-xen-sparse/include/asm-xen/xenbus.h @@ -83,8 +83,7 @@ extern struct semaphore xenbus_lock; char **xenbus_directory(const char *dir, const char *node, unsigned int *num); void *xenbus_read(const char *dir, const char *node, unsigned int *len); -int xenbus_write(const char *dir, const char *node, - const char *string, int createflags); +int xenbus_write(const char *dir, const char *node, const char *string); int xenbus_mkdir(const char *dir, const char *node); int xenbus_exists(const char *dir, const char *node); int xenbus_rm(const char *dir, const char *node); -- 2.30.2